home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / programming / c / pmm / make / pmm.cfg < prev    next >
Text File  |  1999-11-30  |  6KB  |  212 lines

  1. ; Allgemeines Compiler-Script
  2. ; ---------------------------
  3. ; Defines, Setting usw. für CPU-Typen: 1-6 = 68k, 7 & 8 PPC / WOS
  4. ; $C = CPU/FPU für Compiler ($D=defines)
  5. ; Nicht gesetzte Werte werden ignoriert.
  6. ; Hier als Beispiel: 6x  m68k-Config / 68000 Standardvorgabe
  7. ;                    2x  PPC, einmal PowerUP und einmal WarpOS
  8. ; Anmerkung: Pmm und alle Pmm-Tools werden ORIGINAL mit diesem Script auf
  9. ;            vbcc 0.6e übersetzt. Ebenso Gateway-5, die gateway.library
  10. ;            und auch meine interne Link-Lib.
  11. ; <-- (; = Kommentar)
  12. # <-- Für Make-Fan's      (# = Kommentar)
  13. ;
  14.  
  15.  
  16.  
  17. ; Leerzeilen sind zulässig!
  18. ; -------------------------
  19.  
  20. $0=000
  21. 2%$0=010
  22. 3%$0=020
  23. 4%$0=030
  24. 5%$0=040
  25. 6%$0=060
  26. 7%$0=PPC
  27. 8%$0=WOS
  28.  
  29. $7=vlib:mieee.lib
  30. 2%$7=vlib:mieee.lib
  31. 3%$7=vlib:m881.lib
  32. 4%$7=vlib:m881.lib
  33. 5%$7=vlib:m040.lib
  34. 6%$7=vlib:m040.lib
  35. 7%$7=-lm
  36. 8%$7=-lm
  37.  
  38. $8=.lib
  39. 7%$8=.a
  40.  
  41. $9=$8
  42. 5%$9=_$0$8
  43. 6%$9=_040$8
  44. 7%$9=_$0$8
  45. 8%$9=_$0$8
  46.  
  47. $C=-cpu=68000
  48. $D=-DCPU="68000" -DFPU="N/A"
  49. ;
  50. 2%$C=-cpu=68010
  51. 2%$D=-DCPU="68010" -DFPU="N/A"
  52. ;
  53. 3%$C=-cpu=68020 -fpu=68881
  54. 3%$D=-DCPU="68020" -DFPU="68881"
  55. ;
  56. 4%$C=-cpu=68030 -fpu=68882
  57. 4%$D=-DCPU="68030" -DFPU="68882"
  58. ;
  59. 5%$C=-cpu=68040 -fpu=68040
  60. 5%$D=-DCPU="68040" -DFPU="68040"
  61. ;
  62. 6%$C=-cpu=68060 -fpu=68060
  63. 6%$D=-DCPU="68060" -DFPU="68060"
  64. ;
  65. 7%$C=-cpu=ppc
  66. 7%$D=-DCPU="PPC" -DFPU="PowerUP"
  67. ;
  68. 8%$C=-cpu=wos
  69. 8%$D=-DCPU="PPC" -DFPU="WarpOS"
  70.  
  71. $o=T:LinkerObjListe
  72. ;
  73. ; Zu 1%, 2% usw. siehe DOKU!
  74. ;
  75.  
  76. ;
  77. ; Vorgabewerte, wenn für das Feld nichts gesetzt ist:
  78. ; ------------- VORSICHT! Optimizer auf 3 ist gefährlich (BETA) !!!
  79. ;               Nach meiner Erfahrung läuft der Optimizer ab V0.6e
  80. ; Bei der Meldung: ">>> VAR <name> is used bevor defined"
  81. ; sofort auf -O=1 gehen. Sonst ist ein Absturz im Programm
  82. ; garantiert! Unter mindestens 16 MB freiem Speicher ist das auch
  83. ; nicht zu empfehlen!                            Anm. der Autorin
  84. ; $1, $2 ... $0 sind einfach Variablen, der Witz ist, das sie hier definiert
  85. ;         werden, aber für jedes Projekt und jedes Programm einzeln
  86. ;         übersteuert werden können.
  87. ;
  88. $1=-no-preprocessor
  89. 7%$1=-no-preprocessor -elf -no-regnames -no-multiple-ccs
  90. 8%$1=-no-preprocessor -amiga-align -poweropen -sc -no-multiple-ccs -use-lmw -peephole
  91. ;
  92. ; Default's:
  93. ;
  94. $2=-O=991 -maxoptpasses=50
  95. $o=T:ObjLinkList
  96. ;
  97. ; Für Linker: CPU-Typ wird geprüft
  98. ;
  99. $3=vlib:startup.o
  100. 7%$3=vlib$0:startup.o
  101. 8%$3=vlib$0:warpup.o
  102. ;
  103. ; Includes, vekürzt $I = Programm-Pfad (Quellen)
  104. ; --------- hier müssen die eigenen Standardpfade rein.         
  105. ;
  106. $4=vlib:vc$8 vlib:amiga$8 vlib:extra$8
  107. 7%$4=-lvc -lamiga -lextra -lpowerup
  108. 8%$4=vlib$0:vc$8 vlib$0:m$8 vlib$0:amiga$8 vlib$0:extra$8 vlib$0:x.o
  109. ;
  110. ; Includes, für DOSLIB vekürzt
  111. ;
  112. $5=$6 -IProj:Library/Include -IProj:Library/Init -I$I
  113. ;
  114. ; Pre-Prozessor
  115. ;
  116. P=vcpp $5 -D__STDC__=1 -+ $D $&.c $&.i
  117. 7%P=vcpp $5 -D__STDC__=1 -+ $D $&.c $&.i
  118. 8%P=vcpp $5 -D__STDC__=1 -D__VBCC__=1 -D__PPC__=1 -+ $D $&.c $&.i
  119. ;
  120. ; C-Compiler:
  121. ;
  122. C=vbccm68k $&.i -o= $&.a -quiet $C $1 $2
  123. 7%C=vbccppc $&.i -o= $&.a -quiet $C $1 $2
  124. 8%C=vbccppc $&.i -o= $&.a -quiet $C $1 $2
  125. ;
  126. ; Scheduler
  127. ; INAKTIV außer bei WarpOS
  128. ;
  129. 8%S=vscppc -quiet $&.a $&.s
  130. ;
  131. ; Assembler
  132. ;
  133. A=PhxAss noexe quiet opt 3 M=0 $&.a TO $&.o
  134. 2%A=PhxAss noexe quiet opt 3 M=1 $&.a TO $&.o
  135. 3%A=PhxAss noexe quiet opt 3 M=2 FPU=1 $&.a TO $&.o
  136. 4%A=PhxAss noexe quiet opt 3 M=3 FPU=1 $&.a TO $&.o
  137. 5%A=PhxAss noexe quiet opt 3 M=4 $&.a TO $&.o
  138. 6%A=PhxAss noexe quiet opt 3 M=6 $&.a TO $&.o
  139. 7%A=pasm_wos -R -F1 -O65536 $&.a -o $&.o
  140. 8%A=pasm_wos -F2 -O65536 $&.s -o $&.o
  141. ;
  142. ; Linker (PhxLnk: @ übergibt eine Datei in der alle .o-Files gelistet sind!)
  143. ;        (GNU-ld: < dito, aber über Standard-Input)
  144. ;        (vlink: -F für File)
  145. ;
  146. ; Beim Start des Linker's mit Optionen, Link-Lib's und Objekten geht ziemlich
  147. ; schnell der Platz aus. Vor allem, wenn noch Pfadangaben hinzukommen. Das Tool
  148. ; vc vom vbcc unterscheidet wann eine Datei und wann eine Liste übergeben wird.
  149. ; Ich habe mich nur gefragt, wieso eigentlich? Wenn ich gleich die Datei ver-
  150. ; wende habe ich es einheitlich und es funktioniert in jedem Fall, ob ein, 10
  151. ; oder 100 Objekte. Alle Linker haben die Funktion ohnehin, also habe ich auf
  152. ; die ÜÜbergabe als Parameterliste verzichtet und übergebe immer die Datei.
  153. ; Der Dateiname ist per $o definiert.
  154. ;
  155. L=vlink -s -sc -sd -x -dn $3 -F$o $L $4 -o $$
  156. 7%L=vlink -nostdlib -belf32powerup -s -sc -sd -Lvlib$0: -F$o $4 $3 $L -o $$
  157. 8%L=vlink -bamigaehf -s -sc -sd -x -nostdlib -Lvlib$0: $3 -F$o $L $4 -o $$
  158. ;
  159. ; CLI-Kommandos ausführen, wenn
  160. ;
  161. ; X0-X9 VOR dem ersten Compilerkommando (P, C, S, A) für Versionspflege
  162. ;       oder Sicherungen.
  163. ;
  164. ; Y0-Y9 NACH dem Link (wenn erfolgreich), z.B. für Arbeitskopien, Update-
  165. ;       systeme etc.
  166. ;
  167. ; R#: Programm starten, Cleanup oder alles andere was passieren soll.
  168. ;     Wird eine Compilerstufe nicht eingesetzt entfallen auch die R-Zeilen!
  169. ;
  170. ; R0:  VOR P - nur wenn auch P ausgeführt wird
  171. ; R1: NACH P - nur wenn auch P ausgeführt wird und ein Output-File vorliegt
  172. ; R2:  VOR C - nur wenn auch C ausgeführt wird
  173. ; R3: NACH C - nur wenn auch C ausgeführt wird und ein Output-File vorliegt
  174. ; R4:  VOR S - nur wenn auch S ausgeführt wird
  175. ; R5: NACH S - nur wenn auch S ausgeführt wird und ein Output-File vorliegt
  176. ; R6:  VOR A - nur wenn auch A ausgeführt wird
  177. ; R7: NACH A - nur wenn auch A ausgeführt wird und ein Output-File vorliegt
  178. ; R8:  VOR L - nur wenn auch L ausgeführt wird
  179. ; R9: NACH L - nur wenn auch L ausgeführt wird und ein Output-File vorliegt
  180. ; TIP: Wenn die Zeilen nicht reichen: 'Batches' oder 'Arexx' einsetzen!
  181. ;
  182. R7=Delete $&.i $&.a
  183. 8%R7=Delete $&.i $&.a $&.s
  184. R9=Delete $o
  185. ;
  186. ; Sicher ist sicher! Deshalb UNBEDINGT aufräumen!
  187. ;
  188. X0=MakeDir >Nil: obj obj/000 obj/010 obj/020 obj/030 obj/040 obj/060 obj/ppc obj/wos
  189. X1=;
  190. X2=;
  191. X3=;
  192. X4=;
  193. X5=;
  194. X6=;
  195. X7=;
  196. X8=;
  197. X9=;
  198.  
  199. Y0=;
  200. Y1=;
  201. Y2=;
  202. Y3=;
  203. Y4=;
  204. Y5=;
  205. Y6=;
  206. Y7=;
  207. Y8=;
  208. Y9=;
  209.